package com.ljl.module.system.service;

import com.ljl.module.system.domain.ApiResponse;
import com.ljl.module.system.domain.MergeTask;
import com.ljl.module.system.domain.Page;
import com.ljl.module.system.domain.Resource;

import java.util.List;
import java.util.Map;

/**
 * 资源service
 *
 * @author 20664
 */
public interface ResourceService {

    /**
     * 获取资源列表
     *
     * @param filePath 路径
     * @param page     分页参数
     * @return 资源
     */
    Map<String, Object> getResources(String filePath, Page page);

    /**
     * 保存资源
     *
     * @param resource 资源
     * @return /
     */
    Resource save(Resource resource);

    /**
     * 保存资源
     *
     * @param uuid 资源唯一标识
     * @return /
     */
    Resource findByUuid(String uuid);

    /**
     * 获取全部资源
     *
     * @return list
     */
    List<Resource> findAll();

    /**
     * 删除资源
     *
     * @param uuid 资源uuid
     * @return /
     */
    Resource remove(String uuid);

    /**
     * 提交合并任务
     *
     * @param uuid 资源id
     * @return 添加成功
     */
    ApiResponse<String> merge(String uuid);

    /**
     * 分析路径下的资源文件
     *
     * @param path 文件路径
     * @return 资源列表
     * @exception Exception 异常
     */
    List<Resource> analyze(String path) throws Exception;
}
